層疊定位是使用Stack
(堆疊)小部件來將多個小部件堆疊在一起,並使用Positioned
小部件來確定它們在屏幕上的位置。這種佈局方法,可以自由地將子widgets放置在屏幕上的任何位置。
相較前面Stack
所寫的對齊屬性,定義的位置更明確。
範例程式碼
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('層疊布局練習'),
),
body: Center(
child: Stack(
children: <Widget>[
// 放置圖像
Image.asset(
'assets/images/image.png',
width: 300.0, // 設置圖像寬度,根據需求調整
height: 300.0, // 設置圖像高度,根據需求調整
),
// 使用Positioned定位文字
Positioned(
top: 100.0, // 距離父層疊的頂部距離
left: 100.0, // 距離父層疊的左側距離
child: Text(
'層疊練習',
style: TextStyle(
fontSize: 25.0,
color: Colors.purple,
),
),
),
],
),
),
),
);
}
}
結果
如果在Positioned中沒有設定top、left,會默認在父疊層的左上